#python版本的客户端
#client.py文件，同样的把那两个生成.py文件放到同一个目录下哦
import grpc
import data_pb2, data_pb2_grpc
import cv2
import base64
import numpy as np


def run():
    channel = grpc.insecure_channel('127.0.0.1:5001') #获取一个频道，呃，可能叫申请一个通讯线路合适点吧
    stub = data_pb2_grpc.dataStub(channel) #获取远程函数的操作指针（Python没有得指针，不晓得怎么称呼这玩意）

    print("读取数据，加密图片")
    img = cv2.imread('/media/chyang/data/dataset/detect/deepsort_dataset/test/Bipolar/v01_056375_01.jpg')
    img_encode = cv2.imencode('.jpg', img)[1]
    data_encode = np.array(img_encode)
    str_encode = data_encode.tostring()
    img_64 = base64.b64encode(str_encode)

    print("远程调用")
    response = stub.serving(data_pb2.data_request(cmd=img_64))  #调用服务

    print("返回数据，解密数据")
    decode_img = base64.b64decode(response.values)  #response.values就是返回值
    img = np.fromstring(decode_img, dtype=np.int8)
    img_decode = cv2.imdecode(img, cv2.IMREAD_COLOR)
    cv2.imshow('wwq',img_decode)
    cv2.waitKey(0)

if __name__ == '__main__':
    run()